const Koa = require('koa')
const app = new Koa()
const router = require('koa-router')()   // 引入方式为函数调用
const bodyParser = require('koa-bodyparser')
const multer = require('@koa/multer') // 引入

const fs = require('fs')
const path = require('path')

// router.get('/news/:id', (ctx, next) => {
//     // console.log(ctx.query.name)
//     // console.log(ctx.querystring);
//     console.log(ctx)
//     ctx.body = "新闻page";
// });

router.get("/form", ctx => {
    ctx.type = 'text/html;charset=utf-8'
    ctx.body = fs.createReadStream('./views/index.html')
})



const storage = multer.diskStorage({
    destination: function (req, file, cb) { // 文件上传的位置
        try {
            var stat = fs.statSync(path.join(__dirname, 'upload-file'))  // 查看public文件夹内是否有该目录
        } catch (e) {
            fs.mkdirSync('upload-file')  // 如果报错就没有该目录，并创建该目录
        }
        cb(null, 'upload-file')
    },
    filename: function (req, file, cb) {   // 修改文件名
        const ext = file.originalname.split('.').pop()   // 获取到文件的后缀名
        cb(null, file.fieldname + '-' + Date.now() + "." + ext)  //使用 cb 进行修改，参数二为文件名（使用时间戳避免重复）
    }
})

const upload = multer({
    // dest: 'upload-file',
    storage
})

router.post('/upload', upload.fields(
    [
        {
            name: 'pic1',
            maxCount: 1
        },
        {
            name: 'pic2',
            maxCount: 2
        }
    ],
), ctx => {
    ctx.body = 'success'
})

// router.post('/upload', upload.single('pic1'), ctx => {
//     ctx.body = 'upload'
// })


// router.post('/upload', upload.array('pic1', 2), ctx => {  // 参数二为上传文件的最大数量
//     ctx.body = 'success'
// })  


// router.get('/user/:id', ctx => {
//     ctx.body = 'user page'
//     console.log(ctx.params)   // {id:...}
// })


// router.post("/save-user", ctx => {
//     ctx.body = "save-user"
//     console.log(ctx.request.body)
// })


app.use(bodyParser())
app.use(router.routes())
app.use(router.allowedMethods());
app.listen(1234, () => {
    console.log('starting at port 1234');
});